package com.cleaningcloud.cld.domain;

import com.cleaningcloud.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

/**
 * packageName com.cleaningcloud.erp.domain
 *
 * @author Shaw
 * @version JDK 8
 * @className MaterialsBI
 * @date 2025-04-16
 * @description 物资BI
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class HumanResourcesBI extends BaseEntity {

    // ------------------------------公共参数------------------------------
    //日期值
    private String dateVal;
    //年月日
    private Integer dateYear;
    private Integer dateMonth;
    private Integer dateDay;
    //参数值
    private BigDecimal rv;
    //参数与实际差异
    private BigDecimal rvDiff;
    //计划值
    private BigDecimal pv;
    //计划与实际差异
    private BigDecimal pvDiff;

    //项目ID
    private Long projectId;
    //项目区域
    private String projectRegion;
    //项目名称
    private String projectName;
    //项目业态
    private String projectBusiness;

    // ------------------------------薪酬版块------------------------------
    //基本工资
    private BigDecimal basicSalary;
    //绩效津贴
    private BigDecimal performanceAllowance ;
    //加班工资
    private BigDecimal overTimeSalary;
    //福利津贴
    private BigDecimal benefitAllowance;
    //奖惩金额
    private BigDecimal rewardsMoney;
    //保险金额
    private BigDecimal insuranceMoney;
    //工服金额
    private BigDecimal clothesMoney;
    //工作计划
    private BigDecimal workPlanMoney;
    //培训费用
    private BigDecimal trainingCost;
    //招聘费用
    private BigDecimal hireCost;
    //合计薪酬
    private BigDecimal sumSalary;

    //总数
    private int sumNumber;
    //已完成率
    private BigDecimal successRate;
    //未完成率
    private BigDecimal unSuccessRate;

    // ------------------------------人员在岗版块------------------------------
    //在岗率
    private BigDecimal dutyRate;
    //缺岗率
    private BigDecimal vacancyRate;
    //合同人数
    private int contractNumber;
    //在岗人数
    private int postNumber;
    //缺岗人数
    private int notPostNumber;
    //待离职人数
    private int onResignNumber;
    //待入职人数
    private int onEmployedNumber;
    //已入职人数
    private int employedNumber;
    //男性占比
    private BigDecimal manRate;
    //女性占比
    private BigDecimal womanRate;
    //男性60岁以下
    private int manBelow60;
    //男性60-65岁
    private int manBelow60or65;
    //男性66-70岁
    private int manBelow66or70;
    //男性70岁以上
    private int manAbove70;
    //女性60岁以下
    private int womanBelow60;
    //女性60-65岁
    private int womanBelow60or65;
    //女性66-70岁
    private int womanBelow66or70;
    //女性70岁以上
    private int womanAbove70;

    //经理占比
    private BigDecimal leaderRate;
    //经理人数
    private int leaderNumber;
    //主管占比
    private BigDecimal managerRate;
    //主管人数
    private int managerNumber;
    //领班占比
    private BigDecimal foremanRate;
    //领班人数
    private int foremanNumber;
    //员工人数
    private int staffNumber;

    // ------------------------------工作计划版块------------------------------
    //总提交数
    private int submitNumber;
    //已完成数
    private int successNumber;
    //未完成数
    private int unSuccessNumber;
    //系统默认数
    private int defaultNumber;
    //客户确认数
    private int confirmNumber;
    //客户驳回数
    private int rejectNumber;
    //已整改数
    private int rectifiedNumber;
    //未整改数
    private int unRectifiedNumber;
    //专项-总提交数
    private int zxSubmitNumber;
    //专项-系统默认数
    private int zxDefaultNumber;
    //专项-客户确认数
    private int zxConfirmNumber;
    //专项-客户驳回数
    private int zxRejectNumber;
    //专项-已整改数
    private int zxRectifiedNumber;
    //专项-未整改数
    private int zxUnRectifiedNumber;

    //未处理率
    private BigDecimal unHandleRate;
    //已处理率
    private BigDecimal handleRate;
    //处理中率
    private BigDecimal handleOnRate;
    //客诉数
    private int complaintsNumber;
    //未处理数
    private int unHandleNumber;
    //处理中数
    private int handleOnNumber;
    //已处理数
    private int handleNumber;
    //已撤销数
    private int revokeNumber;
    //已反馈数
    private int feedbackNumber;

    //入职完成率
    private BigDecimal rzRate;
    //入职培训数
    private int rzNumber;
    //入职培训已完成数
    private int rzSuccessNumber;
    //入职培训未完成数
    private int rzUnSuccessNumber;
    //岗前完成率
    private BigDecimal gqRate;
    //岗前培训数
    private int gqNumber;
    //岗前培训已完成数
    private int gqSuccessNumber;
    //岗前培训未完成数
    private int gqUnSuccessNumber;
    //专项完成率
    private BigDecimal zxRate;
    //专项培训数
    private int zxNumber;
    //专项培训已完成数
    private int zxSuccessNumber;
    //专项培训未完成数
    private int zxUnSuccessNumber;

    //在保率
    private BigDecimal insuranceRate;
    //在保数
    private int insuranceNumber;
    //缺保率
    private BigDecimal unInsuranceRate;
    //缺保数
    private int unInsuranceNumber;
    //出险率
    private BigDecimal dangerRate;
    //出险数
    private int dangerNumber;
    //未出险率
    private BigDecimal unDangerRate;
    //报案数
    private int reportNumber;
    //结案数
    private int closeNumber;
}
